Server-Driven UI
2021年
Ghost PlatformというSDUIシステムを作ったと
Web、iOS、Androidのいずれもで同じUIを出したい、という前提を抑えているとわかりやすい
Web, iOS, Androidのいずれもで同じGraphQL Schemaでリクエストする
個々の画面をGraphQL Schemaで記述するような感じになるんだろうか?
構成要素
https://gyazo.com/2efaffd275d9a5e1eea69ddf4a42c991
Screen
画面のレイアウト
footerとか
Section
UIの基本的な構成要素
表示する際のデータと一緒にUIロジックを含み、クライアントでUIに変換される
code:ts
interface GPResponse {
}
https://gyazo.com/74698bdbc2ce872606c2d72cd7ce41c2
サーバがUIとUIのロジックも返却し、クライアントはただそれをUIに変換して表示するだけ
バックエンドで全てを制御する
クライアントで状態管理などをしない
任意のUIを制御できるという感じではなくて、予め用意していたComponetに対して、
内容やロジックや見た目や順序をサーバから制御する感じかな
特にモバイルアプリを作っていることをイメージするとわかりやすそうmrsekut.icon
モバイルアプリのクライアント側のロジックは、アプリのバージョンを更新しないと反映できない
これをserverが制御できるなら嬉しい
こういうのと相性が良さそう
モバイルアプリ
管理画面みたいにカスタマイズ性が求められるUI
ABテスト
複雑なUIを作ろうとすると厳しそう
普通のサイトなら特に採用するモチベがなさそう